#include<iostream>
#include<algorithm>
using namespace std;
void output(int b[],int l){
	cout<<b[0];
	for(int i=1;i<l;i++){
		cout<<" "<<b[i];
	}
	cout<<endl;
}
bool check(int a[],int l){
	bool ret=false;
	for(int i=0;i<l;i++){
		if(a[i]!=i+1){
			ret=true;
			break;
		}
	}
	return ret;
}
int main(){
	int n;
	cin>>n;
	if(n==1){
		cout<<"1"<<endl;
	}
	else if(n==2){
		cout<<"1 2"<<endl;
		cout<<"2 1"<<endl;
	}else{
		int flag=0;
		int a[n];
		for(int i=0;i<n;i++){
			a[i]=i+1;
		}
		int k=n-1;
		do{
			output(a,n);
			if(k<n-2&&k!=0){
				while(next_permutation(a+k+1,a+n)){
					if(check(a,n)){
						flag=1;
						break;
					}
					 output(a,n);
				}
			}
			int temp=a[k];
			a[k]=a[k-1];
			a[k-1]=temp;
			k--;
			if(k==0){
				k=n-1;
			}
		}while(!flag&&check(a,n));
	}

	return 0;
}
